﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Loja.Banco;

namespace Loja.Aplicação
{
    class VendedorControle
    {
        public LOJA banco { get; set; }

        public VendedorControle(LOJA banco)
        {
            this.banco = banco;
        }

        public void Salvar(Vendedor vendedor)
        {
            banco.AddToVendedor(vendedor);
            banco.SaveChanges();
        }

  /*      public IEnumerable<Vendedor> Listar()
        {
            return banco.Vendedor.ToList();
        }*/

        public Object Listar()
        {
            var vendedorBuscar = (from x in banco.Vendedor
                                  where x.Desativado.Equals(false)                                  
                                  select x).ToList();

            return (Object)vendedorBuscar;
        }

        public Object ListarVendedor()
        {
            var vendedorBuscar = (from x in banco.Vendedor
                                  where x.Desativado.Equals(false)
                                  select new
                                  {
                                      Código = x.Vendedor_ID,
                                      x.Nome
                                  });

            return (Object)vendedorBuscar;
        }

        public Object BuscarVendedorCampo(String campo)
        {
            var vendedorBuscar = (from x in banco.Vendedor
                                 where x.Nome.Contains(campo)
                                 && x.Desativado.Equals(false)
                                  select x).ToList();
            return (Object)vendedorBuscar;
        }


        public void Alterar(Vendedor vendedor)
        {
            banco.SaveChanges();
        }

        public void Excluir(Vendedor vendedor)
        {
            Vendedor vendedorExcluir = (from x in banco.Vendedor
                                      where x.Vendedor_ID == vendedor.Vendedor_ID
                                      && x.Desativado.Equals(false)
                                      select x).First();

            vendedorExcluir.Desativado = false;

            banco.AddToVendedor(vendedorExcluir);
            banco.SaveChanges();
        }

        public Vendedor Buscar(Vendedor vendedor)
        {
            Vendedor vendedorBuscar = (from x in banco.Vendedor
                                        where x.Vendedor_ID == vendedor.Vendedor_ID
                                        && x.Desativado.Equals(false)
                                        select x).First();
            return vendedorBuscar;            
        }

        public Object Buscar()
        {
            Object vendedorBuscar = from x in banco.Vendedor
                                    where x.Desativado.Equals(false)
                                    select x.Nome;
            return vendedorBuscar;
        }

        public Vendedor Buscar(Int32 vendedor)
        {
            Vendedor vendedorBuscar = (from x in banco.Vendedor
                                       where x.Vendedor_ID == vendedor
                                       && x.Desativado.Equals(false)
                                       select x).First();     
            return vendedorBuscar;
        }

    }
}
